'''
Created on 18/04/2013

@author: jean
'''
from pm.database import db
from sqlalchemy import ForeignKey

class UsuariosRoles(db.Model):
    '''
    Clase que asocia a un usuario con su rol
    '''
    __tablename__ = 'usuarios_roles'
    id_usuario_rol = db.Column(db.Integer, primary_key=True, nullable=False)
    '''
       PrimaryKey de la tabla
    '''
    id_rol = db.Column(db.Integer, ForeignKey('roles.id_rol'), nullable=False)
    '''
       Rol al que se relaciona el registro
    '''
    id_usuario = db.Column(db.Integer, ForeignKey('usuarios.id_usuario'),nullable=False)
    '''
       Usuario al que se relaciona el registro
    '''
    activo = db.Column(db.Boolean, nullable=False)
    '''
       Indica si el el registro se encuentra activo
    '''
    
    def __init__(self,id_rol,id_usuario, activo = True):
        
        '''
        @param id_rol: id del rol
        @param id_usuario: id del usuario
        @param activo: indica si el usuario-rol esta activo   
        '''
        self.id_rol = id_rol
        self.id_usuario = id_usuario 
        self.activo = activo
    
    def __repr__(self):
        return '{id_usuario_rol:%s, id_rol:%s, id_usuario:%s}' % (self.id_usuario_rol, self.id_rol, self.id_usuario)
    
    def __json__(self):
        '''
         devuelve el json que representa a Usuarios
        '''
        return {'id':self.id_usuario_rol , 
                'id_rol': self.id_rol, 
                'id_usuario': self.id_usuario, 
                'activo': self.activo
                }